﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PGI.EN.Usuario;
using PGI.EN.OpcSistema;
using PGI.LN.OpcSistema;

namespace PGI.WF
{
    public partial class MDIPGI : Form
    {
        public UsuarioEn usuarioForm = null;

        public MDIPGI()
        {
            InitializeComponent();
        }


        private void MDIPGI_Load(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Maximized;
            this.MinimumSize = Screen.PrimaryScreen.Bounds.Size;
            this.MaximumSize = this.MinimumSize;


            List<OpcSistemaEn> opciones_habilitadas = new List<OpcSistemaEn>();
            opciones_habilitadas = OpcSistemaLn.OpcSistema_ListarOpcionesHabilitadas(usuarioForm.TipoUsuarioID);

            
            List<ToolStripMenuItem> myItems = Funciones.GetItems(this.menuPGI);
            foreach (var item in myItems)
            {
                if (item.Name.Contains("MenuPadre"))
                {
                    item.Visible = true;
                    item.Enabled = true;
                }

                else if (item.Name.Contains("salir"))
                {
                    item.Visible = true;
                    item.Enabled = true;
                }

                else
                {
                    foreach (var itemOpc in opciones_habilitadas)
                    {
                        if (item.Name == itemOpc.NombreControl)
                        {
                            item.Visible = true;
                            item.Enabled = true;
                            break;
                        }
                        else
                        {
                            item.Visible = false;
                            item.Enabled = false;
                        }
                    }

                }
            }            
        }

        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult dr = MessageBox.Show(this, "¿Desea salir del sistema?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dr == DialogResult.Yes)
            {
                this.Dispose();
                Application.Exit();
            }
        }

        private void usuarioStripMenuItem1_Click(object sender, EventArgs e)
        {
            FrmUsuarioMantenimiento frm = FrmUsuarioMantenimiento.Instance();
            frm.MdiParent = this;
            frm.Show();
            frm.Activate();
            
        }

        

        private void MDIPGI_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (!this.IsDisposed)
            {
                DialogResult dr = MessageBox.Show(this, "¿Desea salir del sistema?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (dr == DialogResult.Yes)
                {
                    this.Dispose();
                    Application.Exit();
                }
                else
                    e.Cancel = true;
            }
        }

        private void CategoriaStripMenuItem1_Click(object sender, EventArgs e)
        {
            FrmCategoriaMantenimiento frmcat = FrmCategoriaMantenimiento.Instance();
            frmcat.MdiParent = this;
            frmcat.Show();
            frmcat.Activate();
        }
        private void accesosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmTipoUsuario_OpcSistemaMantenimiento frm = FrmTipoUsuario_OpcSistemaMantenimiento.Instance();
            frm.MdiParent = this;
            frm.Show();
            frm.Activate();
        }
        private void productosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmProductoMantenimiento frm = FrmProductoMantenimiento.Instance();
            frm.MdiParent = this;
            frm.Show();
            frm.Activate();
        }
        private void opcionesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmOpcionMantenimiento frmopc = FrmOpcionMantenimiento.Instance();
            frmopc.MdiParent = this;
            frmopc.Show();
            frmopc.Activate();
        }

        private void comprasMenuHijo_Click(object sender, EventArgs e)
        {
            FrmInventarioCompras frmInvCompras = FrmInventarioCompras.Instance();
            frmInvCompras.usuarioForm = usuarioForm;
            frmInvCompras.MdiParent = this;
            frmInvCompras.Show();
            frmInvCompras.Activate();
        }

        private void ventasMenuHijo_Click(object sender, EventArgs e)
        {
            FrmInventarioVentas frmInvVentas = FrmInventarioVentas.Instance();
            frmInvVentas.usuarioForm = usuarioForm;
            frmInvVentas.MdiParent = this;
            frmInvVentas.Show();
            frmInvVentas.Activate();
        }

        private void bajasMenuHijo_Click(object sender, EventArgs e)
        {
            FrmInventarioBajas frmInvBajas = FrmInventarioBajas.Instance();
            frmInvBajas.usuarioForm = usuarioForm;
            frmInvBajas.MdiParent = this;
            frmInvBajas.Show();
            frmInvBajas.Activate();
        }

        private void anulaCompraMenuHijo_Click(object sender, EventArgs e)
        {
            FrmAnulacionCompras frmAnulCompra = FrmAnulacionCompras.Instance();
            frmAnulCompra.MdiParent = this;
            frmAnulCompra.Show();
            frmAnulCompra.Activate();
        }

        private void anulaVentaMenuHijo_Click(object sender, EventArgs e)
        {
            FrmAnulacionVentas frmAnulVenta = FrmAnulacionVentas.Instance();
            frmAnulVenta.MdiParent = this;
            frmAnulVenta.Show();
            frmAnulVenta.Activate();
        }

        private void anulaBajaMenuHijo_Click(object sender, EventArgs e)
        {
            FrmAnulacionBajas frmAnulBaja = FrmAnulacionBajas.Instance();
            frmAnulBaja.MdiParent = this;
            frmAnulBaja.Show();
            frmAnulBaja.Activate();
        }

        private void reporteVentaMenuHijo_Click(object sender, EventArgs e)
        {
            FrmReporteVentas frmRptVentas = FrmReporteVentas.Instance();
            frmRptVentas.MdiParent = this;
            frmRptVentas.Show();
            frmRptVentas.Activate();
        }

          
              
    }
}
